using System;
using System.Collections.Generic;
using System.Data;
using System.Configuration;
using System.Web.UI;
using Anthem;
using Common;
using DataAccess;

public partial class Usuarios_UsuariosListado : PageBase
{
    #region Propiedades

    public string IdentificadorUsuId
    {
        get { return (ViewState["IdentificadorUsuId"] == null ? string.Empty : ViewState["IdentificadorUsuId"].ToString()); }
        set { ViewState["IdentificadorUsuId"] = value; }
    }
    private DataTable SigUsuariosDataTable
    {

        get
        {

            DataTable objTable = null;
            if (Cache[AdmUsuariosData.ADM_USUARIOS_TABLE + Session.SessionID] != null)
                objTable = (DataTable)Cache[AdmUsuariosData.ADM_USUARIOS_TABLE + Session.SessionID];
            return objTable;
        }

        set
        {
            if (value != null)
            {
                Cache.Insert(AdmUsuariosData.ADM_USUARIOS_TABLE + Session.SessionID, value, null, DateTime.Now.AddMinutes(20), TimeSpan.Zero);
            }
        }
    }

    #endregion

    #region Page_Load

    protected void Page_Load(object sender, EventArgs e)
    {
        WccAcciones1.AddEnabledDuringCallBack = false;
        WccAcciones1.AddTextDuringCallBack = "Guardando... Por favor esperar!!!";
        WccAcciones1.UpdateEnabledDuringCallBack = false;
        WccAcciones1.UpdateTextDuringCallBack = "Guardando... Por favor espere!!!";

        if (!Page.IsPostBack)
        {
            cargarUsuarios();
        }
        lblMensaje.Visible = false;
        lblMensaje.AutoUpdateAfterCallBack = true;
        WccAcciones1.Permisos = Permisos;
        if (Manager.IsCallBack)
        {
            Manager.RegisterClientScriptBlock(typeof(Page), "reloj", "<script>muestraReloj2();</script>");
        }
        ////////////////////////////
        // cargar Usuarios de cache //
        ////////////////////////////
        if (SigUsuariosDataTable!= null)
        {
            if (SigUsuariosDataTable.Rows.Count > 0)
            {
                gridUsuarios.DataSource = SigUsuariosDataTable.DefaultView;
                gridUsuarios.DataBind();
            }
        }

    }

    #endregion

    #region cargarUsuarios

    private void cargarUsuarios()
    {
        BusinessRules.Usuarios objUsuarios = new BusinessRules.Usuarios(ConfigurationManager.AppSettings["Conn"]);
        AdmUsuariosData objAdmUsuariosData =  objUsuarios.BuscarUsuarios("", "", "");
        SigUsuariosDataTable = objAdmUsuariosData;
        gridUsuarios.DataSource = objAdmUsuariosData;
        gridUsuarios.DataBind();
        
    }

    #endregion

    #region WccAcciones1_Add_OnClick

    protected void WccAcciones1_Add_OnClick(object sender, ImageClickEventArgs e)
    {
        crearContextItems();
        Server.Transfer("Usuarios.aspx?SSM_ID=15", true);
    }

    #endregion

    #region crearContextItems

    private void crearContextItems()
    {
        try
        {
            Context.Items["IdentificadorUsuId"] = IdentificadorUsuId;
        }
        catch (Exception ex)
        {
            lblMensaje.Text = ex.ToString();
        }
    }

    #endregion

    #region WccAcciones1_Delete_OnClick

    protected void WccAcciones1_Delete_OnClick(object sender, ImageClickEventArgs e)
    {
        lblMensaje.Visible = true;
        List<object> keyValues = gridUsuarios.GetSelectedFieldValues("USU_ID");
        try
        {
            string[] strIDs = new string[30];
            int intCurrentItems = 0;
            foreach (object key in keyValues)
            {
                intCurrentItems++;
                strIDs[intCurrentItems] = key.ToString();
                
            }

            BusinessRules.Usuarios objUsuarios = new BusinessRules.Usuarios(ConfigurationManager.AppSettings["Conn"]);
            
            if (objUsuarios.EliminarUsuarios(strIDs) != 0)
            {
                
                Utilidad.mostrarMensaje(Utilidad.TiposMensajes.Mensaje, Utilidad.TraerMensaje("gmsgEliminarRegistrosExitoso"), lblMensaje);									
            } 
            cargarUsuarios();
            gridUsuarios.Selection.UnselectAll();
        }

        catch (Exception ex)
        {
            //throw new ApplicationExceptionManager(Utilidad.TraerMensaje("gmsgErrorInsertar", this.GetType().FullName), ex);
            Utilidad.mostrarMensaje(Utilidad.TiposMensajes.Error, ex.Message, lblMensaje);
            
        }

    }

    #endregion

    #region WccAcciones1_Update_OnClick

    protected void WccAcciones1_Update_OnClick(object sender, ImageClickEventArgs e)
    {
        List<object> keyValues = gridUsuarios.GetSelectedFieldValues("USU_ID");

        try
        {
            foreach (object key in keyValues)
            {

                IdentificadorUsuId = key.ToString();
            }
            crearContextItems();
            Server.Transfer("Usuarios.aspx?SSM_ID=15", true);
        }
        catch (Exception ex)
        {
            //throw new ApplicationExceptionManager(Utilidad.TraerMensaje("gmsgErrorInsertar", this.GetType().FullName), ex);
            lblMensaje.Text = ex.Message;
        }
    }

    #endregion

}
